/**
 * jId - provides unique identifiers to classes and stores type information
 */
window.jClassId = function(type, obj, extending, implementing) {
    _.id++;
    var id = Math.round(new Date().getTime() * Math.random());//"#" + _.id;
    if (obj) {
        obj.instanceId = id;
        obj.typeName = type;
        obj.extending = jUtils.compactArray(obj.extending || [], extending);
        obj.implementing = jUtils.compactArray(obj.implementing || [], implementing);
        return;
    }
    return {
        _prototype : {
            instanceId : id,
            typeName : type,
            extending : jUtils.compactArray(extending || [], []),
            implementing : jUtils.compactArray(implementing || [], [])
        }
    }
}